package pe.com.bn.sach.service.impl;

import java.text.SimpleDateFormat;
import java.util.*;

import org.apache.log4j.Logger;
import pe.com.bn.sach.service.DesembolsoService;
import pe.com.bn.sach.dao.CorrelativoPagareDAO;
import pe.com.bn.sach.domain.Bnchf13Expediente;
import pe.com.bn.sach.domain.Bnchf33ExpedientePagareId;
import pe.com.bn.sach.domain.Bnchf36ExpVendedor;
import pe.com.bn.sach.domain.Bnchf64Pagare;

import pe.com.bn.sach.domain.Bnchf33ExpedientePagare;
import pe.com.bn.sach.seguridad.DatosSesion;
 


public class DesembolsoImpl  implements DesembolsoService
	{
	private static Logger log = Logger.getLogger(DesembolsoImpl.class.getName());	
	CorrelativoPagareDAO correlativoPagareDAO;
	public void ActualizaExpPagDesembolsoanulacion(String idExpediente, String idpagare,String stadoDesembolso) throws Exception
	{
		Bnchf33ExpedientePagare bnchf33ExpedientePagare = new Bnchf33ExpedientePagare(); 
		bnchf33ExpedientePagare.getId().getBnchf13Expediente().setF13IdExpediente(idExpediente);
		bnchf33ExpedientePagare.getBnchf64Pagare().setF64IdPagare(idpagare);
		bnchf33ExpedientePagare.setF33EstdoDesemb(new Long(stadoDesembolso));
		correlativoPagareDAO.ActualizaExpPagDesembolsoanulacion(bnchf33ExpedientePagare);
	}
	public String idvendedorquery(Bnchf36ExpVendedor bnchf36ExpVendedor)throws Exception
	{
		return correlativoPagareDAO.idvendedorquery(bnchf36ExpVendedor);
	}
	
	public void ActualizaExpVendedorDesempaso2(Bnchf36ExpVendedor bnchf36ExpVendedor  ) throws Exception
	{
		correlativoPagareDAO.ActualizaExpVendedorDesempaso2(bnchf36ExpVendedor);
	}
	
	public void ActualizaExpPagDesembolsopaso2(String idExpediente,String idPagare,String stadoDesem,String fedesemb ) throws Exception
	{
		
		Bnchf33ExpedientePagareId id = new Bnchf33ExpedientePagareId();
		
			Bnchf13Expediente bnchf13Expediente = new Bnchf13Expediente();
				bnchf13Expediente.setF13IdExpediente(idExpediente);
			id.setBnchf13Expediente(bnchf13Expediente);
			
		Bnchf64Pagare bnchf64Pagare = new Bnchf64Pagare();
		bnchf64Pagare.setF64IdPagare(idPagare);
		
		Bnchf33ExpedientePagare bnchf33ExpedientePagare = new Bnchf33ExpedientePagare();
		bnchf33ExpedientePagare.setId(id);
		bnchf33ExpedientePagare.setBnchf64Pagare(bnchf64Pagare);
		bnchf33ExpedientePagare.setF33EstdoDesemb(new Long(stadoDesem));
		
		SimpleDateFormat sdf= new SimpleDateFormat("dd/MM/yyyy"); 
		fedesemb = fedesemb.substring(6,8)+"/"+fedesemb.substring(4,6)+"/"+fedesemb.substring(0,4);
		bnchf33ExpedientePagare.setF33FeDesemb(sdf.parse(fedesemb));
		correlativoPagareDAO.ActualizaExpPagDesembolsopaso2(bnchf33ExpedientePagare);
		
		
	}
	public List consultaCheque(String idExpediente,String idPagare,String fechaInicio,String fechaFin,String StadoDesemb)throws Exception
	{
		
		SimpleDateFormat sdf= new SimpleDateFormat("dd/MM/yyyy"); 
		
		Bnchf33ExpedientePagareId id = new Bnchf33ExpedientePagareId();
		
			Bnchf13Expediente bnchf13Expediente = new Bnchf13Expediente();
				bnchf13Expediente.setF13IdExpediente(idExpediente);
			id.setBnchf13Expediente(bnchf13Expediente);
			
		Bnchf64Pagare bnchf64Pagare = new Bnchf64Pagare();
		bnchf64Pagare.setF64IdPagare(idPagare);
		
		Bnchf33ExpedientePagare bnchf33ExpedientePagare = new Bnchf33ExpedientePagare();
		bnchf33ExpedientePagare.setId(id);
		bnchf33ExpedientePagare.setBnchf64Pagare(bnchf64Pagare);

		bnchf33ExpedientePagare.setF33FePendDesembs(fechaInicio);
		if(StadoDesemb!=null)if(StadoDesemb.length()!=0)
		bnchf33ExpedientePagare.setF33EstdoDesemb(new Long(StadoDesemb));
  	    bnchf33ExpedientePagare.setF33FeDesembs(fechaFin);
		List l = new ArrayList();
		l = correlativoPagareDAO.consultaCheque(bnchf33ExpedientePagare);
		return l;
	}
	public void ActualizaExpPagareStadoFePend(String idExpediente,String idInmueble,String stadoDesemb,String pagare) throws Exception
	{
			Bnchf33ExpedientePagareId id = new Bnchf33ExpedientePagareId();
			Bnchf13Expediente bnchf13Expediente = new Bnchf13Expediente();
			bnchf13Expediente.setF13IdExpediente(idExpediente);
		id.setBnchf13Expediente(bnchf13Expediente);
		
			Bnchf64Pagare bnchf64Pagare = new Bnchf64Pagare();
			bnchf64Pagare.setF64IdPagare(pagare);
		
		Bnchf33ExpedientePagare bnchf33ExpedientePagare = new Bnchf33ExpedientePagare(); 
		bnchf33ExpedientePagare.setId(id);
		bnchf33ExpedientePagare.setF35IdInmueble(new Long(idInmueble));
		bnchf33ExpedientePagare.setF33EstdoDesemb(new Long(stadoDesemb));
		bnchf33ExpedientePagare.setBnchf64Pagare(bnchf64Pagare);
		
		
		
		correlativoPagareDAO.ActualizaExpPagareStadoFePend(bnchf33ExpedientePagare);
	}
	public String correlativoPagare(String idExpediente,DatosSesion datosSesion,String idUp,String txtIdInmueble,String descComentario) throws Exception
	{
		Bnchf13Expediente bnchf13Expediente = new Bnchf13Expediente();
		bnchf13Expediente.setF13IdExpediente(idExpediente);
		return correlativoPagareDAO.correlativoPagare(bnchf13Expediente,datosSesion,idUp,txtIdInmueble,descComentario);
	}
	
	
	
	public Bnchf33ExpedientePagare datosExpedientePagare(String idExpediente,String idUP)throws Exception
	{
		return  correlativoPagareDAO.datosExpedientePagare(idExpediente,idUP);
	}
	
	
	public Bnchf13Expediente datosGeneracionPagare(String idExpediente)throws Exception
	{
		Bnchf13Expediente bnchf13Expediente = new Bnchf13Expediente(); 
		bnchf13Expediente.setF13IdExpediente(idExpediente);
		return correlativoPagareDAO.datosGeneracionPagare(bnchf13Expediente);
	}
	
	public void setCorrelativoPagareDAO(
			CorrelativoPagareDAO correlativoPagareDAO) {
		this.correlativoPagareDAO = correlativoPagareDAO;
	}
}

